// pages/my/peisongdian/peisongdian.js
const request = require("../../../../../utils/request");
const QQMapWX = require('../../../../../utils/libs/qqmap-wx-jssdk')
const mapFun = require('../../../../../utils/map');
var qqmapsdk;
qqmapsdk = new QQMapWX({
  key: '4RKBZ-J7ECO-VO6WS-SN5VJ-XTOEK-USBVI'
});
Page({

  /**
   * 页面的初始数据
   */
  data: {
    lat: '',
    lng: '',
    page: 1,
    exids: '',
    keywords: '',
    currentPoint: null,
    markers: [],
    isLastPage: false,

    selectctLat: '', // 拖动地图
    selectctLng: '', // 拖动地图
    isTop: false,
    list: [],

    page_index: 1,

    areaList: [], //搜索出的列表

    showMap: false, //仅用于展示
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.getLocation()
  },
  // 获取当前位置
  getLocation(type) {
    let _this = this
    // 展示当前选择点
    let location = wx.getStorageSync('localXiaoqu')
    this.setData({
      currentPoint: location,
      exids: location.id,
    })
     //重新定位
    if(type) { 
      _this.map = wx.createMapContext('map', this)
      _this.map.moveToLocation({
        latitude: location.lat,
        longitude: location.lng,
        list:[],
        page:1,
        isLastPage:false,
        keywords:''
      })
    }
    this.changeMap()
  },
  // 切换配送点
  changeMap(lat, lng) {
    let _this = this
    let list = this.data.list
    let isLastPage = this.data.isLastPage
    let coordinate = ''
    if(lat && lng) {
      coordinate = lat + ',' + lng
    } else {
      coordinate = this.data.currentPoint.lat + ',' + this.data.currentPoint.lng
    }
    request._post('/api?method=merchants.xiaoqulist', {
      name: this.data.name,
      coordinate,
      page: this.data.page,
      limit:10,
    }).then(res => {
      if (res.data.length == 0) {
        _this.setData({
          isLastPage: true
        })
      } else {
        _this.setData({
          isLastPage: false
        })
      }
      _this.setData({
        list: list.concat(res.data),
        isLastPage
      })
    })
  },
  // 选择自提点
  choosePoint(e) {
    let item = e.currentTarget.dataset.item
    if (item) {
      let location = wx.getStorageSync('localXiaoqu')
      // item.isFirstGet = false
      let obj = Object.assign(location, item)
      wx.setStorage({
        key: 'localXiaoqu',
        data: obj,
      })
      getApp().globalData.changePoint = true
    }
   
    wx.navigateBack({
      delta: 1, // 回退前 delta(默认为1) 页面
    })
    
  },
  // 搜索关键字
  search(e) {
    this.setData({
      keywords: e.detail.value
    })
    let selectctLng = this.data.selectctLng
    let selectctLat = this.data.selectctLat
    let lat = this.data.lat
    let lng = this.data.lng
    this.getPoiList()
  },

  // 获取搜索的点
  getPoiList(longitude, latitude) {
    let _this = this
    let {
      isLastPage_index,
      page_index
    } = this.data

    


    qqmapsdk.getSuggestion({
      //获取输入框值并设置keyword参数
      keyword: this.data.keywords, //用户输入的关键词，可设置固定值,如keyword:'KFC'
      region: '', //设置城市名，限制关键词所示的地域范围，非必填参数
      page_index: page_index,
      success: function (res) { //搜索成功后的回调
        if (res.data.length == 0) {
          isLastPage_index = true
        } else {
          isLastPage_index = false
        }
        _this.setData({
          areaList: _this.data.areaList.concat(res.data),
          isLastPage_index
        })
      },
      fail: function (error) {
        console.error(error);
      },
      complete: function (res) {
      }
    });
  },
  // 选中搜索的点
  selectPoint(e) {
    let item = e.currentTarget.dataset.item.location
    this.setData({
      lat: item.lat,
      lng: item.lng,
      keywords: '',
      areaList: [],
      list: [],
      isLastPage: false,
      page: 1
    })
    this.changeMap()
  },
  // 搜索列表上拉加载
  scroll_tower() {
    let {
      page_index,
      isLastPage_index
    } = this.data
    if (isLastPage_index) {
      return
    }
    page_index++
    this.setData({
      page_index
    })
    this.getPoiList()
  },
  // 拖动地图
  regionchange(e) {
    if (e.type == 'end') {
      this.getLngLat() 
      this.setData({
        isTop: false,
      })
    } else {
      this.setData({
        isTop: true,
      })
    }
  },
  // 获取中间点经纬度,并marke出来
  getLngLat() {
    let _this = this
    _this.mapCtx = wx.createMapContext("map");
    _this.mapCtx.getCenterLocation({
      success: function (res) {
        _this.setData({
          page: 1,
          isLastPage: false,
          list: []
        })
        _this.changeMap(res.latitude, res.longitude)
      }
    })
  },
  // 重新定位
  refreshDingwei() {
    this.getLocation(1)
    // this.map = wx.createMapContext('map', this)
    // if (location) {
    //   _this.map.moveToLocation({
    //     longitude: location.lng,
    //     latitude: location.lat
    //   })
    // } else {
    //   firstPageMap.getLocation(this, function (res) {
    //     _this.map.moveToLocation({
    //       longitude: res.result.location.lng,
    //       latitude: res.result.location.lat
    //     })
    //   })
    // }

  },
  /**
   * 
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */

  onReachBottom: function () {
    if (this.data.isLastPage) {
      return
    }
    let page = this.data.page
    page++
    this.setData({
      page
    })
    this.changeMap()
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})